#include "enemyplane.h"
#include<QSize>
#include<QtMath>
EnemyPlane::EnemyPlane()
{
    //敌机资源加载
    m_emeny.load(ENEMY01_PATH);

    //敌机位置
    m_x=-1000;
    m_y=0;

    //敌机速度
    m_Speed=ENEMY01_SPEED;

    //敌机矩形框
    m_Rect.setWidth(m_emeny.width()-40);
    m_Rect.setHeight(m_emeny.height()-40);


    m_Rect.moveTo(m_x+20,m_y+20);

    //敌机血量
    m_Blood=ENEMY01_BLOOD;

    //敌机状态
    m_Free=1;


}
//更新第一种敌机的位置
void EnemyPlane::Enemt01_updatePosition()
{
    //空闲状态敌机不计算坐标
    if(m_Free)
    {
        return;
    }
    m_y+=m_Speed;

    m_Rect.moveTo(m_x+20,m_y+20);
    //如果超出屏幕  重置空闲状态
    if(m_y>=GAME_HEIGHT+m_emeny.height())
    {
       m_Free=1;
       m_Blood=ENEMY01_BLOOD;
    }
}

void EnemyPlane::Enemt03_updatePosition()
{
    //空闲状态敌机不计算坐标
    if(m_Free)
    {
        return;
    }
    m_x+=m_Speed;
    m_y+=300*sin(50000*m_x);
    m_Rect.moveTo(m_x+20,m_y+20);
    //如果超出屏幕  重置空闲状态
    if(m_y>=GAME_HEIGHT+m_emeny.height()||m_x>=GAME_WIDTH)
    {
       m_Free=1;
       m_Blood=ENEMY03_BLOOD;
    }
}

void EnemyPlane::shoot()
{
    //累加时间间隔
     m_Recorder++;
     //如果记录的数字未达到发射子弹的时间间隔，不发射子弹
     if(m_Recorder<ENEMY01_BULLET_INTERVAL)
     {
         return;
     }
     //达到发射时间
     m_Recorder=0;
     //发射子弹
     for(int i=0;i<ENEMY01_BULLET_NUM;i++)
     {
         //如果是空闲子弹 进行发射
         if(enemy_bullet01s[i].m_Free)//第二行，第三行都跟第一行
         {
             enemy_bullet01s[i].m_Free=0;
             enemy_bullet01s[i].m_x=m_x+70;
             enemy_bullet01s[i].m_y=m_y+70;
             break;
         }
     }

}
